В шаге "Шаг 180 - Коллекция изображений" мы с Вами использовали функцию DrawImage в формате:
public void DrawImage(Image, Point);
Но вариантов ее использования много. Второй ее формат
public void DrawImage(Image, Rectangle);
Позволяет отображать ее в некотором прямоугольнике, соответственно данный трюк можно использовать для масштабирование изображения. Смотрим пример.
using System;
using System.Windows.Forms;
using System.Collections;
using System.Drawing;
class MainForm : Form
{
public MainForm()
{
Text = "This is my form";
myArray = new ArrayList();
myArray.Add(Image.FromFile("D:\\net_step\\1\\Watch.jpg"));
}
protected override void OnPaint(PaintEventArgs pe)
{
Graphics g = pe.Graphics;
foreach (Image i in myArray)
{
g.DrawImage(i,new Rectangle(1,1,10+x,10+x));
}
}
protected override void OnMouseDown(MouseEventArgs e)
{
if (e.Button==MouseButtons.Left)
{
x=x+50;
}
else
{
if (x>0) x=x-50;
}
this.Invalidate();
}
public static void Main(string[] args)
{
Application.Run(new MainForm());
}
static int x;
ArrayList myArray;
}
По нажатию левой кнопки масштаб увеличиваем, по нажатию правой уменьшаем. В прилагаемом проекте Вы можете испытать это способ. Данная картинка очень сильно масштабирована.
